#ifndef CUSTOMER_H_
#define CUSTOMER_H_

#include <string>
#include <iomanip>
#include <iostream>
// other types
#include "Street_address.h"		//uncomment once you have added the type definition

using namespace std;

struct Customer {
public:
	// constructors
	 Customer(){} //Part A1 VCN.
	Customer (int id, string n, Street_address a)	//uncomment once you have added the type definition
		: cust_id(id), cust_name(n), addr(a) {}

   // utility functions
	string display() const
		{
			//customer display format
			stringstream sline (stringstream::in | stringstream::out);
			sline<<cust_id<<"\t"<<left<<setw(16)<<cust_name<<addr.display();
			return sline.str();
		}
				
	string write()
	{
		stringstream sline (stringstream::in | stringstream::out);
		sline << cust_id << " " << cust_name << " " << addr.write() << "\n";
		return sline.str();	
	}
	
	//getter functions
	string getCustName() const {return cust_name;}
	int getCustId() const {return cust_id;}

	
private:
   //constants
     
   // private data
	int cust_id;
	string cust_name;
	Street_address addr;			//uncomment once you have added the type definition
};


#endif //CUSTOMER_H_
